package com.me.chat.service.impl.chat;

import com.me.chat.mapper.chat.ChatMessageMapper;
import com.me.chat.pojo.chat.ChatMessage;
import com.me.chat.pojo.chat.qo.ChatMessageQO;
import com.me.chat.pojo.util.PageQO;
import com.me.chat.service.chat.ChatMessageService;
import com.me.chat.util.PageUtil;
import com.me.chat.util.SimpleUserInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.time.LocalDateTime;
import java.util.Comparator;
import java.util.List;

/**
 * 消息列表查询服务层
 * @Authhor: qiu
 * @Date: 2021/12/5 12:00 上午
 */
@Service
public class ChatMessageServiceImpl implements ChatMessageService {

    @Autowired
    ChatMessageMapper chatMessageMapper;

    @Override
    //chatMessageQO 中已经有了targetId
    public List<ChatMessage> selChatSingleMessage(ChatMessageQO chatMessageQO,int current,int size) {
        String userId = SimpleUserInfo.getUserId();
        // 为了防止篡改，userId 通过工具类来获得
        chatMessageQO.setSenderId(userId);
        //setPageVal 可以直接把start 算出来，然后放入参数中
        chatMessageQO.setPageVal(current,size);
        List<ChatMessage> chatMessages = chatMessageMapper.selChatSingleMessage(chatMessageQO);
        //sql 是降序的 再来升排序一下，就附和了向上懒加载
        chatMessages.sort(Comparator.comparing(ChatMessage::getCreatedTime));
        return chatMessages;
    }

    @Override
    public void addChatMessage(ChatMessageQO chatMessageQO) {
        //加入当前时间
        //chatMessageQO.setCreatedTime(LocalDateTime.now());

        chatMessageMapper.addChatMessage(chatMessageQO);
    }
}
